///import core
///import uicore
///import ui\popup.js
///import ui\stateful.js
(function () {
    var utils = baidu.editor.utils,
        domUtils = baidu.editor.dom.domUtils,
        uiUtils = baidu.editor.ui.uiUtils,
        UIBase = baidu.editor.ui.UIBase,
        Popup = baidu.editor.ui.Popup,
        Stateful = baidu.editor.ui.Stateful,
        CellAlignPicker = baidu.editor.ui.CellAlignPicker,
        QuickOperate = (baidu.editor.ui.QuickOperate = function (options) {
            this.initOptions(options);
            // this.initMenu();
        });

    // var menuSeparator = {
    //   renderHtml: function() {
    //     return '<div class="edui-menuitem edui-menuseparator"><div class="edui-menuseparator-inner"></div></div>';
    //   },
    //   postRender: function() {},
    //   queryAutoHide: function() {
    //     return true;
    //   }
    // };
    QuickOperate.prototype = {
        //   items: null,
        uiName: "quick-operate",
        //   initMenu: function() {
        //     this.items = this.items || [];
        //     this.initPopup();
        //     this.initItems();
        //   },
        //   initItems: function() {
        //     for (var i = 0; i < this.items.length; i++) {
        //       var item = this.items[i];
        //       if (item == "-") {
        //         this.items[i] = this.getSeparator();
        //       } else if (!(item instanceof MenuItem)) {
        //         item.editor = this.editor;
        //         item.theme = this.editor.options.theme;
        //         this.items[i] = this.createItem(item);
        //       }
        //     }
        //   },
        //   getSeparator: function() {
        //     return menuSeparator;
        //   },
        //   createItem: function(item) {
        //     //新增一个参数menu, 该参数存储了menuItem所对应的menu引用
        //     item.menu = this;
        //     return new MenuItem(item);
        //   },
        _Popup_getContentHtmlTpl: Popup.prototype.getContentHtmlTpl,
        getContentHtmlTpl: function () {
            //     if (this.items.length == 0) {
            //       return this._Popup_getContentHtmlTpl();
            //     }
            //     var buff = [];
            //     for (var i = 0; i < this.items.length; i++) {
            //       var item = this.items[i];
            //       buff[i] = item.renderHtml();
            //     }
            //     return '<div class="%%-body">' + buff.join("") + "</div>";
            return [
                '<div class="edui-quick-operate">',
                ' <div class="edui-quick-operate-status">',
                '   <div class="edui-quick-operate-icon"><i class="icon icon-image"></i></div>',
                '   <div class="edui-quick-operate-icon"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" data-icon="DragOutlined"><path d="M8.25 6.5a1.75 1.75 0 1 0 0-3.5 1.75 1.75 0 0 0 0 3.5Zm0 7.25a1.75 1.75 0 1 0 0-3.5 1.75 1.75 0 0 0 0 3.5Zm1.75 5.5a1.75 1.75 0 1 1-3.5 0 1.75 1.75 0 0 1 3.5 0ZM14.753 6.5a1.75 1.75 0 1 0 0-3.5 1.75 1.75 0 0 0 0 3.5ZM16.5 12a1.75 1.75 0 1 1-3.5 0 1.75 1.75 0 0 1 3.5 0Zm-1.747 9a1.75 1.75 0 1 0 0-3.5 1.75 1.75 0 0 0 0 3.5Z" fill="currentColor"></path></svg></div>',
                ' </div>',
                ' <div class="edui-quick-operate-menu">',
                '   <div class="item"><i class="icon icon-image"></i> 删除</div>',
                '   <div class="item"><i class="icon icon-image"></i> 左对齐</div>',
                '   <div class="item"><i class="icon icon-image"></i> 右对齐</div>',
                ' </div>',
                '</div>',
            ].join('')
        },
        //   _Popup_postRender: Popup.prototype.postRender,
        //   postRender: function() {
        //     var me = this;
        //     for (var i = 0; i < this.items.length; i++) {
        //       var item = this.items[i];
        //       item.ownerMenu = this;
        //       item.postRender();
        //     }
        //     domUtils.on(this.getDom(), "mouseover", function(evt) {
        //       evt = evt || event;
        //       var rel = evt.relatedTarget || evt.fromElement;
        //       var el = me.getDom();
        //       if (!uiUtils.contains(el, rel) && el !== rel) {
        //         me.fireEvent("over");
        //       }
        //     });
        //     this._Popup_postRender();
        //   },
        //   queryAutoHide: function(el) {
        //     if (el) {
        //       if (uiUtils.contains(this.getDom(), el)) {
        //         return false;
        //       }
        //       for (var i = 0; i < this.items.length; i++) {
        //         var item = this.items[i];
        //         if (item.queryAutoHide(el) === false) {
        //           return false;
        //         }
        //       }
        //     }
        //   },
        //   clearItems: function() {
        //     for (var i = 0; i < this.items.length; i++) {
        //       var item = this.items[i];
        //       clearTimeout(item._showingTimer);
        //       clearTimeout(item._closingTimer);
        //       if (item.subMenu) {
        //         item.subMenu.destroy();
        //       }
        //     }
        //     this.items = [];
        //   },
        destroy: function () {
            if (this.getDom()) {
                domUtils.remove(this.getDom());
            }
            //     this.clearItems();
        },
        dispose: function () {
            this.destroy();
        }
    };
    utils.inherits(QuickOperate, Popup);
    //
    // /**
    //    * @update 2013/04/03 hancong03 新增一个参数menu, 该参数存储了menuItem所对应的menu引用
    //    * @type {Function}
    //    */
    // var MenuItem = (baidu.editor.ui.MenuItem = function(options) {
    //   this.initOptions(options);
    //   this.initUIBase();
    //   this.Stateful_init();
    //   if (this.subMenu && !(this.subMenu instanceof QuickOperate)) {
    //     if (options.className && options.className.indexOf("aligntd") != -1) {
    //       var me = this;
    //
    //       //获取单元格对齐初始状态
    //       this.subMenu.selected = this.editor.queryCommandValue("cellalignment");
    //
    //       this.subMenu = new Popup({
    //         content: new CellAlignPicker(this.subMenu),
    //         parentMenu: me,
    //         editor: me.editor,
    //         destroy: function() {
    //           if (this.getDom()) {
    //             domUtils.remove(this.getDom());
    //           }
    //         }
    //       });
    //       this.subMenu.addListener("postRenderAfter", function() {
    //         domUtils.on(this.getDom(), "mouseover", function() {
    //           me.addState("opened");
    //         });
    //       });
    //     } else {
    //       this.subMenu = new QuickOperate(this.subMenu);
    //     }
    //   }
    // });
    // MenuItem.prototype = {
    //   label: "",
    //   subMenu: null,
    //   ownerMenu: null,
    //   uiName: "menuitem",
    //   alwalysHoverable: true,
    //   getHtmlTpl: function() {
    //     return (
    //       '<div id="##" class="%%" stateful onclick="$$._onClick(event, this);">' +
    //       '<div class="%%-body">' +
    //       this.renderLabelHtml() +
    //       "</div>" +
    //       "</div>"
    //     );
    //   },
    //   postRender: function() {
    //     var me = this;
    //     this.addListener("over", function() {
    //       me.ownerMenu.fireEvent("submenuover", me);
    //       if (me.subMenu) {
    //         me.delayShowSubMenu();
    //       }
    //     });
    //     if (this.subMenu) {
    //       this.getDom().className += " edui-hassubmenu";
    //       this.subMenu.render();
    //       this.addListener("out", function() {
    //         me.delayHideSubMenu();
    //       });
    //       this.subMenu.addListener("over", function() {
    //         clearTimeout(me._closingTimer);
    //         me._closingTimer = null;
    //         me.addState("opened");
    //       });
    //       this.ownerMenu.addListener("hide", function() {
    //         me.hideSubMenu();
    //       });
    //       this.ownerMenu.addListener("submenuover", function(t, subMenu) {
    //         if (subMenu !== me) {
    //           me.delayHideSubMenu();
    //         }
    //       });
    //       this.subMenu._bakQueryAutoHide = this.subMenu.queryAutoHide;
    //       this.subMenu.queryAutoHide = function(el) {
    //         if (el && uiUtils.contains(me.getDom(), el)) {
    //           return false;
    //         }
    //         return this._bakQueryAutoHide(el);
    //       };
    //     }
    //     this.getDom().style.tabIndex = "-1";
    //     uiUtils.makeUnselectable(this.getDom());
    //     this.Stateful_postRender();
    //   },
    //   delayShowSubMenu: function() {
    //     var me = this;
    //     if (!me.isDisabled()) {
    //       me.addState("opened");
    //       clearTimeout(me._showingTimer);
    //       clearTimeout(me._closingTimer);
    //       me._closingTimer = null;
    //       me._showingTimer = setTimeout(function() {
    //         me.showSubMenu();
    //       }, 250);
    //     }
    //   },
    //   delayHideSubMenu: function() {
    //     var me = this;
    //     if (!me.isDisabled()) {
    //       me.removeState("opened");
    //       clearTimeout(me._showingTimer);
    //       if (!me._closingTimer) {
    //         me._closingTimer = setTimeout(function() {
    //           if (!me.hasState("opened")) {
    //             me.hideSubMenu();
    //           }
    //           me._closingTimer = null;
    //         }, 400);
    //       }
    //     }
    //   },
    //   renderLabelHtml: function() {
    //     return (
    //       '<div class="edui-arrow"></div>' +
    //       '<div class="edui-box edui-icon"></div>' +
    //       '<div class="edui-box edui-label %%-label">' +
    //       (this.label || "") +
    //       "</div>"
    //     );
    //   },
    //   getStateDom: function() {
    //     return this.getDom();
    //   },
    //   queryAutoHide: function(el) {
    //     if (this.subMenu && this.hasState("opened")) {
    //       return this.subMenu.queryAutoHide(el);
    //     }
    //   },
    //   _onClick: function(event, this_) {
    //     if (this.hasState("disabled")) return;
    //     if (this.fireEvent("click", event, this_) !== false) {
    //       if (this.subMenu) {
    //         this.showSubMenu();
    //       } else {
    //         Popup.postHide(event);
    //       }
    //     }
    //   },
    //   showSubMenu: function() {
    //     var rect = uiUtils.getClientRect(this.getDom());
    //     rect.right -= 5;
    //     rect.left += 2;
    //     rect.width -= 7;
    //     rect.top -= 4;
    //     rect.bottom += 4;
    //     rect.height += 8;
    //     this.subMenu.showAnchorRect(rect, true, true);
    //   },
    //   hideSubMenu: function() {
    //     this.subMenu.hide();
    //   }
    // };
    // utils.inherits(MenuItem, UIBase);
    // utils.extend(MenuItem.prototype, Stateful, true);
})();
